Extensible Code Verification

نویسندگان

  • Bor-Yuh Evan Chang
  • George C. Necula
  • Robert R. Schneck
چکیده

Popular language-based security mechanisms for software systems are based on verifiers that enforce a fixed and trusted type system. We live in a multi-lingual world and no system is written entirely in a single strongly-typed language. Rather than seek the absolute most general type system, we propose a sound framework for customizing the mechanism (e.g., a type system or an explicit safety proof) used to enforce a particular safety policy, enabling a producer of untrusted code to choose the most appropriate verification mechanism. In this framework, called the Open Verifier, code producers can provide untrusted verifiers for checking, for example, the well-typedness of the code. This gives a code producer the maximum of flexibility of the code generation schemes and the type system used. To ensure soundness, the untrusted verifier runs under the supervision of a trusted module that queries it about the safety of individual instructions. Each answer must be accompanied by a proof that allows the trusted module to check the correctness of the answer. We demonstrate this framework in the context of two untrusted cooperating verifiers. One handles code that is compiled from Cool, a strongly-typed, objectoriented language (roughly, a subset of Java). The other one is used for runtime support functions written in C. Furthermore, we demonstrate that through careful layering of the proof-generation effort, the cost of building such an untrusted verifier above constructing a conventional, trusted verifier is manageable.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Extensible Untrusted Code Verification

Extensible Untrusted Code Verification

متن کامل

Trustworthy Refactoring via Decomposition and Schemes: A Complex Case Study

Widely used complex code refactoring tools lack a solid reasoning about the correctness of the transformations they implement, whilst interest in proven correct refactoring is ever increasing as only formal verification can provide true confidence in applying tool-automated refactoring to industrialscale code. By using our strategic rewriting based refactoring specification language, we present...

متن کامل

Extended Code Coverage for AspectJ-Based Runtime Verification Tools

Many runtime verification tools for the Java virtual machine rely on aspect-oriented programming, particularly on AspectJ, to weave the verification logic into the observed program. However, AspectJ imposes several limitations on the verification tools, such as a restricted join point model and the inability of weaving certain classes, particularly the Java and Android class libraries. In this ...

متن کامل

From Verification to Implementation: UPPAAL to C++

Validation and Verification of safety critical systems is crucial and if done incorrectly can result in fatal loss. The research contribution is focused on providing the transformation mechanism from software verification to source code phase of software development life cycle. Modeling of the critical systems initializes with the formalism of requirements followed by early model verification. ...

متن کامل

Code Validation for Modern OS Kernels

The proliferation of kernel mode malware and rootkits over the last decade is one of the most critical challenges the security industry is facing. While mechanisms such as UEFI secure boot in conjunction with signed driver loading effectively verify the integrity of the kernel at load time, runtime verification is still an open problem. Various security systems have been proposed solutions to p...

متن کامل

BON-CASE: An Extensible CASE Tool for Formal Specification and Reasoning

We describe BON-CASE, an extensible tool for the BON modelling language. The tool’s support for formal techniques – in particular, for formal specification of contracts and frames, as a platform for verification of Eiffel code, for lightweight integration with existing reasoning tools (such as type checkers, theorem provers, and static assertion checkers), and its extensible architecture – is d...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2003